import 'package:flutter/material.dart';

main() {
  // var a;//当初始化时候 没有值的时候 后续类型将可以多次变更
  // print(a.runtimeType);
  //
  // a ="@";
  // print(a.runtimeType);
  //
  // a =false;
  // print(a.runtimeType);
  //
  // var b=1; //当初始化时候 有值的时候 后续类型将固定
  // // b="a";//会报错
  // print(b.runtimeType);

  // //final  //修饰的变量可以不初始化值  且类型可以不固定，但是仅能赋值一次
  // final String c="a";
  // //c="b"  报错 ->仅能赋值一次
  // pri(c);
  //
  // var a1;
  // final c1=a1;//可以赋值给一个var类型
  // //c1="c" 报错 ->仅能赋值一次
  // pri(c1);
  //
  // final c2;//无法使用  编译器会提示 未赋值

  //  const  必须初始化值 仅能赋值一次 且值必须为常量
  // var a;
  // int a1 = 1;
  // //const
  // const String d = "1";
  // const d1 = 1;
  // //const  d2=a;//报错
  // //const int d3 = a1; //
  // //const  d2;//报错 必须初始
    onA(1);
    onA1(1,2);


    onB(1, b1: 2);
    onB1(1, b1: 2);
}

void onA(int a,[int b=1,int c=2]){

}
void onA1(int a,[b,c]){

}

onB(int b,{required int b1,int b2=2}){

}

onB1(int b,{b1, b2}){

}

void pri(value) {
  print("value=$value 类型 ${value.runtimeType}");
}


class A{
}